package com.zryc.shop.oms.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zryc.shop.oms.entity.Order;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Date;
import java.util.HashMap;
import java.util.List;

/**
 * <p>
 * 订单表 服务类
 * </p>
 *
 * @author zhaozhao
 * @since 2024-01-18
 */
public interface IOrderService extends IService<Order> {

    /**
     * 分页查询列表
     *
     * @param pageNum
     * @param pageSize
     * @param orderSn
     * @param receiverKeyword
     * @param status
     * @param orderType
     * @param sourceType
     * @param createTime
     * @return
     */
    Page<Order> list(Integer pageNum, Integer pageSize, String orderSn, String receiverKeyword, Integer status, Integer orderType, Integer sourceType, Date createTime);

    /**
     * 修改备注信息
     *
     * @param id
     * @param status
     * @param note
     * @param token
     * @return
     */
    Object updateNode(Long id, Integer status, String note, String token);

    /**
     * 删除订单
     *
     * @param ids
     * @param token
     * @return
     */
    Object deleteOrder(String ids, String token);

    /**
     * 关闭订单
     *
     * @param ids
     * @param note
     * @param token
     * @return
     */
    Object close(String ids, String note, String token);

    /**
     * 订单发货
     *
     * @param params
     * @param token
     * @return
     */
    Object delivery(List<HashMap> params, String token);

    /**
     * 修改订单费用信息
     *
     * @param params
     * @param token
     * @return
     */
    Object updateMoneyInfo(HashMap params, String token);

    /**
     * 修改收件人信息
     *
     * @param params
     * @param token
     * @return
     */
    Object updateReceiverInfo(HashMap params, String token);

    /**
     * 查询订单详情
     *
     * @param id
     * @return
     */
    Object detail(Long id);
}
